草庐IT

Java 枚举 - 为什么使用 toString 而不是名称

全部标签

ruby - 为什么 Ruby 在做同样的事情时有 zip 和 transpose?

他们似乎在做同样的事情。g=[{a:"A"},{b:"B"}]r=[{x:"X"},{y:"Y"}]g.zip(r)#=>[[{:a=>"A"},{:x=>"X"}],[{:b=>"B"},{:y=>"Y"}]][g,r].transpose#=>[[{:a=>"A"},{:x=>"X"}],[{:b=>"B"},{:y=>"Y"}]]为什么有这两种方法? 最佳答案 #transpose假设self是数组的数组并转置行和列。#zip假设self可以是任何Enumerable对象。这里有更多区别a=[12,11,21]b=[1,2][

ruby - 为什么 `-1 * x` 比 `-x` 快,为什么?

使用这段代码:includeBenchmarkn=10**8r=[]Benchmark.benchmark(""*7+CAPTION,7,FORMAT,">avg:",">total:")do|b|a=1r我在ruby2.1.5p273(2014-11-13修订版48405)[x86_64-linux]上得到了这个结果:usersystemtotalrealBenchmark-1:4.9300000.0000004.930000(4.938359)Benchmark-:5.6500000.0000005.650000(5.667566)>avg:5.2900000.0000005.29

ruby-on-rails - 为什么在部署 Rails 应用程序时需要 Apache 服务器?

虽然我们可以用webrick或mongrel部署它 最佳答案 大多数Ruby应用程序服务器只会运行一个Ruby进程(Ruby有一个全局解释器锁,这使得多线程变得毫无意义),这意味着它一次只能处理一个请求。至少可以说,这不会给你很好的表现。有两种解决方法:运行多个Ruby应用程序服务器并在它们前面放置一个负载平衡器或反向代理,例如Nginx或Apache在一堆Mongrels或瘦服务器前面(您运行的进程数反射(reflect)了您将能够并行处理的请求数)。或者你运行Passenger,它是一个Apache或Nginx模块,管理一个应用

ruby - Net::HTTP 中的服务器名称指示支持?

我正在尝试让Ruby的Net::HTTP实现与SNI一起工作。mail.google.com和gmail.com都位于同一个IP地址上,因此当通过SSL连接时,Google服务器需要知道要使用哪个证书。默认情况下,它会返回mail.google.com证书,如果您尝试实现WebFinger,这就是一个问题。WebFinger要求您检索https://gmail.com/.well-known/host-meta以获取LRDD信息,但是,出于安全原因,验证SSL证书至关重要信息。由于Google在这种情况下提供默认的mail.google.com证书,因此SSLpost_connecti

ruby - 为什么要使用 SQL 构建器? Arel 诉 Sequel 诉 T-SQL

我正在尝试了解通过面向对象的构建器DSL构建SQL与参数化原始SQL字符串相比的优势。在以三种方式研究/实现相同的查询之后,我注意到原始SQL是迄今为止最容易阅读的。这就引出了一个问题,“为什么要跳过一个箍?”为什么不直接声明和使用原始SQL?这是我想出的:首先,我猜它使SQL更具可移植性,因为它可以被任何带有适配器的数据库使用。我猜这是大人物,对吧?尽管如此,难道大多数T-SQL不是大多数数据库都能理解的吗?其次,它提供了一个可以重复使用的查询对象——作为其他查询、命名范围链接等的基础。通过构建SQL而不是声明SQL,您实现的主要投资返回是什么?definstances_of_sql

ruby-on-rails - 你如何分解出 RSpec 中常见的 "before(:each)"调用,以便多个规范可以使用它们?

我想分解这堆代码,以便我所有的Controller测试(好吧,几乎所有的)都使用这个before(:each)block:before(:each)do@user=User.newcontroller.stub(:authenticate_user!)controller.stub(:current_user).and_return(@user)controller.stub(:add_secure_model_data)end有什么办法吗?我不想将它包含在所有Controller中......因为有一些不需要它。基本上,每个从SecureController扩展的Controller

ruby - 使用 Chef 和 Vagrant 在 Ubuntu 上安装 Ruby 1.9.2

我想使用Ruby1.9.2提供一个新的Ubuntu10.04机器。我正在使用Vagrant和ChefSolo为盒子提供我需要的一切(例如Rails、Rake、MongoDB)。默认的Ruby版本是1.8.7。有没有办法在Vagrant/Chef配置过程中安装Ruby1.9.2?我在Chef网站上读到过关于使用我自己的Bootstrap模板——可能是用Knife——比如thisone,但是因为我使用的是Vagrant,所以我不确定将这个模板放在哪里—我没有chef-repo、.chef目录,甚至没有安装在/etc/chef中的任何Chef东西。 最佳答案

ruby - HTTParty parsed_response 返回一个 String 而不是 Hash

如果您收到响应代码200,HTTPParty的parsed_response方法会返回一个哈希值,否则无论网络服务器是否返回XML响应,它都会返回一个字符串。HTTParty.get(post_url).parsed_response.class#Dependsonresponsecode即使出现403,亚马逊也会提供XML(解释出了什么问题)。我错过了什么吗? 最佳答案 HTTPParty根据HTTP响应的Content-Typeheader解析其#parsed_response。验证该HTTPheader的值是什么。在您的情况下

ruby - cucumber :何时使用标签/ Hook 与背景

我想知道与使用标签和Hook相比,是否有支持或反对在cucumber中使用背景的好理由。在测试开始之前有一个登录用户可以是这样的:Background:GiventhatIamloggedinScenario:Loremipsumsitametdolor[...]或者像这样:@loginScenario:Loremipsumsitametdolor[...]+before(@login)dovisit('/admin/login/testuser')end知道什么时候该优先考虑另一个吗? 最佳答案 Background在您为场景提供

ruby - 什么是 Rack - "no acceptor"错误?

在尝试运行我的config.ru时,我遇到了一个我似乎无法调试的奇怪错误,称为“无接受器”错误。完整错误信息:eventmachine.rb:572:in`start_tcp_server':noacceptor(RuntimeError)有谁知道这个错误是什么意思?谢谢。 最佳答案 正如@Fivell所说,我认为问题在于您之前的thin实例仍在运行。不过,与其从另一个端口开始,我建议您终止之前的实例。像这样的东西应该可以完成工作(我在这里重新创建了问题,所以这是我的实际输出):telemachuscaps$psax|greprub